local tArgs = {...}
local err = true
local reboot = false
local immediate = false
local var = true
local function findArg(arg)
 for _,v in ipairs(tArgs) do
  if v == arg then
   return true
  end
 end
 return false
end

if findArg("-r") or findArg("--reboot") then
 err = false
 reboot = true
 gui.printAppInfo("kernel", "expect system reboot")
end
if findArg("-i") or findArg("--immediate") then
 err = false
 immediate = true
 gui.printAppWarning("kernel", "immediate halt called")
end
if findArg("-d") or findArg("--delete-temp") then
 err = false
 if not immediate then
  var = false
  gui.printAppInfo("kernel", "removing temporary directories")
 else
  gui.printAppInfo("kernel", "unable to remove temporary directories")
 end
end
if #tArgs < 1 or err then
 gui.printAppInfo("kernel", "arguments not specified")
 return
end
sleep(1)
if reboot then
 if immediate then
  os.reboot()
 else
  if var then
   kernel.reboot(false)
  else
   kernel.reboot(true)
  end
 end
else
 if immediate then
  os.shutdown()
 else
  if var then
   kernel.shutdown(false)
  else
   kernel.shutdown(true)
  end
 end
end